/***********************************************************************************************
 * File Name   :	windows_5_setting_wifi.c
 * Programmer  : 	kmist
 * Start Date  : 	11/9/2020
 * Last Update : 	11/15/2020
 *----------------------------------------------------------------------------------------------
 *Functions:
 *     void win5_setting_wifi_display(void)                //引导界面显示接口
 *  uint8_t win5_setting_wifi_btn_select(void *arg)        //select
 *  uint8_t win5_setting_wifi_btn_enter(void *arg)         //enter
 *  uint8_t win5_setting_wifi_btn_exit(void *arg)          //exit
 ***********************************************************************************************/
#include "user_extern.h"

uint8_t selidx = 1;
/*********************************************************************
 *  名称： win5_setting_wifi_display
 *  功能： setting-Wi-Fi 显示接口
 *  参数： void
 *  返回值：win_ret 窗口显示状态
 ********************************************************************/
uint8_t win5_setting_wifi_display(void)
{
    char wifi_status[8] = {0};
    char wifi_switch[8] = {0};
    char wifi_ssid[10] = {0};

    uint8_t win_ret = WINDOWS_STATUS_DIS_ONLY;
    ui.draw_sys_title(const_setting_wifi);

    /* ssid */
    oled.show_string(3, 13, T(const_setting_wifi_ssid), STR_SIZE_16, 1);
    oled.show_string(120, 13, T(const_setting_wifi_ssid_end), STR_SIZE_16, 1);
    snprintf(wifi_ssid, "%s", wifi.ssid, 9);
    uint8_t tmp_x = (120 - (strlen(const_setting_wifi_ssid) * 8) - (strlen(wifi_ssid) * 8)) / 2 + (strlen(const_setting_wifi_ssid) * 8);
    oled.show_string(tmp_x, 13, T(wifi_ssid), STR_SIZE_16, 1);

    /* STAS */
    oled.show_string(3, 29, T(const_setting_wifi_status), STR_SIZE_16, 1);

    if (wifi.wifi_status == SYS_WIFI_STATUS_UNCONNECT)
    {
        strcpy(wifi_status, const_setting_wifi_sta_n);
        strcpy(wifi_switch, const_setting_wifi_sw_open);
    }
    else if (wifi.wifi_status == SYS_WIFI_STATUS_CONNECTED)
    {
        strcpy(wifi_status, const_setting_wifi_sta_y);
        strcpy(wifi_switch, const_setting_wifi_sw_close);
    }
    else
    {
        strcpy(wifi_status, const_setting_wifi_connect);
    }
    oled.show_string(64, 29, T(wifi_status), STR_SIZE_16, 1);
    oled.show_string(0, 48, T(const_setting_wifi_scan), STR_SIZE_16, (selidx == 0) ? 0 : 1);
    oled.show_string(POSITION_RIGHT(wifi_switch, STR_SIZE_16), 48, T(wifi_switch), STR_SIZE_16, (selidx == 1) ? 0 : 1);
    return win_ret;
}

/*********************************************************************
 *  名称： win5_setting_wifi_btn_select
 *  功能： setting-Wi-Fi 界面 选择按钮触发，控制选中下一个可选中目标
 *  参数： void
 *  返回值：0
 ********************************************************************/
uint8_t win5_setting_wifi_btn_select(void *arg)
{
    selidx++;
    if (selidx > 1)
    {
        selidx = 0;
    }
    return 0;
}

/*********************************************************************
 *  名称： win5_setting_wifi_btn_enter
 *  功能： setting-Wi-Fi 界面 确定按钮触发，触发当前光标定位的选项
 *  参数： WINDOWS_STATUS_DIS_ONLY 下一次显示状态
 *  返回值：0
 ********************************************************************/
uint8_t win5_setting_wifi_btn_enter(void *arg)
{
    if (wifi.wifi_status == SYS_WIFI_STATUS_UNCONNECT)
    {
        wifi.init_sta();
        mtime.msntp_init();
        weather.init();
    }
    else if (wifi.wifi_status == SYS_WIFI_STATUS_CONNECTED)
    {
        wifi.close_wifi();
    }

    return WINDOWS_STATUS_DIS_ONLY;
}

/*********************************************************************
 *  名称： win5_setting_wifi_btn_exit
 *  功能： setting-Wi-Fi 界面 退出按钮触发，返回上一级菜单
 *  参数： void
 *  返回值：WINDOWS_STATUS_INIT 下一次显示状态为初始化
 ********************************************************************/
uint8_t win5_setting_wifi_btn_exit(void *arg)
{
    Dsystem.windows_cur_id = WIN_UI_SETTING;
    return WINDOWS_STATUS_INIT;
}